using System;
using System.Collections.Generic;
using System.Text;
using Sedodream.Sudoku.Evaluators;

namespace Sedodream.Sudoku.Board
{
	/// <summary>
	/// Interface to all moves.
	/// </summary>
	public interface IMove
	{
		/// <summary>
		/// Gets the board associated with the move.
		/// </summary>
		IBoard Board
		{
			get;
		}
		/// <summary>
		/// Location of the move.
		/// </summary>
		IPoint Location
		{
			get;
		}
		/// <summary>
		/// Value to go into the cell.
		/// </summary>
		int Value
		{
			get;
		}
		/// <summary>
		/// Gets/sets the forced move value.
		/// If <c>true</c> then this is a forced move.
		/// Otherwise it is not.
		/// </summary>
		bool ForcedMove
		{
			get;
			set;
		}
		/// <summary>
		/// Gets/sets the move score.
		/// </summary>
		int MoveScoreOLD
		{
			get;
			set;
		}
		IScore MoveScore
		{
			get;
			set;
		}
	}
}
